//
//  BaseTableViewController.m
//  IHealth_Salesman
//
//  Created by zhengmeijie on 2018/2/25.
//  Copyright © 2018年 YT. All rights reserved.
//

#import "BaseTableViewController.h"

@interface BaseTableViewController ()

@end

@implementation BaseTableViewController


#pragma mark - 数据源懒加载
- (NSMutableArray *)tableViewData {
    
    if (!_tableViewData) {
        
        _tableViewData = [[NSMutableArray alloc] init];
    }
    return _tableViewData;
}

#pragma mark - 生命周期
- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.tablePage = 1;
    self.tableLimit = 15;
    
    [self drawTableView];
    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)drawTableView{
    
    self.tableView = [[MACTableView alloc] init];
    self.tableView.dataSource = self;
    self.tableView.delegate = self;
    
    self.tableView.backgroundColor = [UIColor clearColor];
    self.tableView.showsVerticalScrollIndicator = NO;
    self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    self.tableView.showEmpty = YES;
    
    self.tableView.estimatedSectionHeaderHeight = 0;  //ios11 适配
    self.tableView.estimatedSectionFooterHeight = 0;  //ios11 适配
    
    [self.view addSubview:self.tableView];
    
    if (!self.isHiddenNoData) {//判断是否允许有NOData提示
        [self.tableView beginLoading];
        
    }
}

#pragma mark - 加载数据
- (void)loadDataWithIsDropDown:(BOOL)isDropDown {
    
    self.isDropDown = isDropDown;
    
    if (isDropDown) {
        
        self.tablePage = 1;
        [self.tableView.mj_footer resetNoMoreData];
        [self.tableView.mj_header endRefreshing];
    }else {
        
        self.tablePage ++;
    }
}

#pragma mark ==================== 数据添加 ====================
- (void)addNewData:(NSMutableArray *)addData{
    
    if (self.isDropDown) {
        
        [self.tableView.mj_header endRefreshing];
        [self.tableViewData removeAllObjects];
        
    }else {
        
        [self.tableView.mj_footer endRefreshing];
    }
    
    self.tableView.mj_footer.hidden = NO;
    
    if (addData.count < _tableLimit) {//如果返回数据比当前页数少，说明这是最后一页，没有更多数据
        [self.tableView.mj_footer endRefreshingWithNoMoreData];
        
        [self.tableViewData addObjectsFromArray:addData];
        
        [self.tableView reloadData];
        
        if (self.tableViewData.count == 0) {
            self.tableView.mj_footer.hidden = YES;
        }else{
            
            self.tableView.mj_footer.hidden = NO;
            
        }
        
    }else {
        
        [self.tableViewData addObjectsFromArray:addData];
        [self.tableView reloadData];
        
        //以下针对IHealth_V2药械购买订单写的
        NSInteger tmpCount = 0;
        if ([addData[0] isKindOfClass:[NSArray class]]) {
            
            for (NSMutableArray * tmpArr in addData) {
                
                tmpCount += tmpArr.count;
            }
        }else{
            
            tmpCount = addData.count;
        }
        
        if (tmpCount < self.tableLimit) {
            
            [self.tableView.mj_footer endRefreshingWithNoMoreData];
        }
        
        
    }
    
}

- (void)setDataFromArray:(NSMutableArray *)data{
    [self.tableView.mj_header endRefreshing];
    [self.tableView.mj_footer endRefreshing];
    
    if (self.tableViewData.count == 0) {
        self.tableView.mj_footer.hidden = YES;
    }else{
        
        self.tableView.mj_footer.hidden = NO;
        
    }
    self.tableViewData = data;
    [self.tableView reloadData];
    
}

- (void)setTableViewIsHaveRefreshHeader:(BOOL)haveRefreshHeader {
    WeakSelf(self);
    if (haveRefreshHeader) {
        self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{
            
            [weakself loadDataWithIsDropDown:YES];
        }];
        
    }else {
        
        self.tableView.mj_header = nil;
    }
}

- (void)setTableViewIsHaveRefreshFooter:(BOOL)haveRefreshFooter {
    
    WeakSelf(self);
    if (haveRefreshFooter) {
        
        self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
            
            [weakself loadDataWithIsDropDown:NO];
        }];
    }else {
        
        self.tableView.mj_footer = nil;
    }
}

- (void)setNoDataAtt:(UIImage *)image title:(NSString *) title{
    self.tableView.emptyImage = image;
    self.tableView.emptyTitle = title;
    
}

#pragma mark - TableView DataSource Delegate
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    
    return 0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    return nil;
}


@end
